/**
 * 
 */
package com.shine.cotrun.xml;

import java.io.InputStream;
import java.io.Reader;
import java.io.StringReader;

import org.dom4j.Document;
import org.xml.sax.InputSource;

/**
 * XML解析器
 * 子类实现doRead()方法执行解析过程
 * 后期可以扩展包含xsd信息的属性
 * @author 卓诗垚
 * @version 1.0
 */
public abstract class XMLReader {
	InputSource xmlSource;//xml文件源
	protected Document document;
//	protected String[] xsdFileName;//xsd文件列表
	
	/**
	 * 构造方法
	 * @param xml 文件名
	 */
	public XMLReader(String xml) {
		StringReader stringReader = new StringReader(xml);
		xmlSource = new InputSource(stringReader);
		XMLParser.parse(this);
	}
	
	/**
	 * 构造方法
	 * @param stream xml流
	 */
	public XMLReader(InputStream stream) {
		xmlSource = new InputSource(stream);
		XMLParser.parse(this);
	}
	
	/**
	 * 构造方法
	 * @param stream xml流
	 */
	public XMLReader(Reader stream) {
		xmlSource = new InputSource(stream);
		XMLParser.parse(this);
	}
	
	/**
	 * XML文档解析过程
	 */
	protected abstract void doRead();
	
}
